package com.xbongbong.pro.competitor.pojo.vo;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.domain.entity.ext.PaasFormEntityExt;
import com.xbongbong.paas.enums.clazz.DateTimeClass;
import com.xbongbong.paas.enums.clazz.PatternClass;
import com.xbongbong.paas.enums.clazz.SeparatorClass;
import com.xbongbong.paas.pojo.FieldAttrEntityForDecisionInfo;
import com.xbongbong.paas.pojo.vo.FormEntityGetVO;
import com.xbongbong.paas.pojo.vo.FormExplainSimpleSetVo;
import com.xbongbong.paas.pojo.vo.FormSimpleSetVO;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.form.pojo.FieldEsIndexPoJo;
import com.xbongbong.pro.lowcodeconfig.pojo.vo.LowCodeConfigGetVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author: yingjf
 * @date: 2022/8/17 11:10
 * @description:
 */
@Getter
@Setter
@ToString
public class CompetitorAnalysisFormGetVO extends BaseVO {
    private Long appId;


    private Long formId;

    /**
     * 表单属性
     */
    private FormEntityGetVO formAttr;
    /**
     * CRM简化版-表单控制
     */
    private FormSimpleSetVO formSimpleSet;
    /**
     * CRM简化版-字段控制
     */
    private FormExplainSimpleSetVo formExplainSet;
    /**
     * 是否启用镜像，0 / 1
     */
    private Integer isMirror;

    /**
     * 表单字段描述
     */
    private List<FieldAttrEntityForDecisionInfo> explainList;

    /**
     * 字段描述id
     */
    private Long formExplainId;

    /**
     * 正则列表
     */
    private List<PatternClass> patternList;

    /**
     * 日期枚举类
     */
    private List<DateTimeClass> dateTimeList;

    /**
     * 线的枚举类
     */
    private List<SeparatorClass> separatorList;

    /**
     * 关联列表设置
     */
    private List<PaasFormEntityExt> associationList;

    /**
     * saas业务类型
     */
    private Integer businessType;

    /**
     * saas辅助字段
     */
    private JSONObject saasObj;

    /**
     * true：可以使用业务规则；false：不能使用业务规则
     */
    private Boolean useBusinessRule;

    /**
     * 是否能使用国际化语言切换
     */
    private Boolean multiLang;

    /**
     * 是否能使用国际化语言切换
     */
    private Integer isBusiness;
    /**
     *  true: 业务规则超过限制
     */
    private Boolean exceeded;

    private String message;

    /**
     * 低代码
     */
    private LowCodeConfigGetVO lowCodeConfig;
    /**
     * false：无开发权限 true：有开发权限
     */
    private Boolean devPermission;

    /**
     * true：可以使用字段映射；false：不能使用字段映射
     */
    private Boolean useFieldConvertRule;

    /**
     * 字段回收站attr
     */
    private Set<String> trashList;

    private Map<String, FieldEsIndexPoJo> fieldMap;

    private Map<String, FieldEsIndexPoJo> subFieldMap;
}
